package com.project.gobang.service;

import com.project.gobang.mapper.UserInfoMapper;
import com.project.gobang.model.UserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserInfoMapper userInfoMapper;

    public UserInfo login(String username) {
        return userInfoMapper.selectUserByUserName(username);
    }


    // 注册: 往数据库中添加用户
    public UserInfo insertUserInfo(String username, String password) {
        // 因为之前在数据库中设计用户名username时, 是添加了 unique 约束
        // 也就是说 "插入" 功能是有可能失败的(用户名重名的情况)
        try {
            UserInfo user = new UserInfo();
            user.setUsername(username);
            user.setPassword(password);
            userInfoMapper.insertUser(user);
            return user;
        } catch (DuplicateKeyException e) {
            // 如果出现用户名重名的情况, 则 catch 单独去处理一下(会触发DuplicateKeyException异常)
            // 返回一个空对象, 表示操作失败了
            e.printStackTrace();
            return new UserInfo();
        }
    }
}
